home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / VGADOC4B.ZIP / PARADISE.TXT < prev    next >
Text File  |  1995-09-29  |  63KB  |  1,271 lines

  1.   Paradise/Western Digital Super VGA Chips.
  2.  
  3.                Max mem   Max 16col  256 col
  4.     PVGA1A     512k/1M     800x600   640x480
  5.     WD90C00    512k/1M    1024x768   800x600   also known as PVGA1B
  6.     WD90C10    256k        640x480   320x200
  7.     WD90C11    512k       1024x768   800x600
  8.     WD90C20                800x600   640x480?  LCD/plasma controller derived
  9.                                                from WD90C00.  32 grey scales
  10.     WD90C22                                    As C20, but 64 grey scales
  11.     WD90c24    208pin   Max 1M RAM, 1280x1024 16c, 1024x768 256c.
  12.                Builtin 15/16bit DAC. LCD controller with BitBLT, line draw and
  13.                VESA local bus interface. Supports 3.3V or 5V operation
  14.     WD90c24A
  15.     WD90c26A                                   LCD controller. Can drive LCD
  16.                                                and CRT simultaneously. 3.3V
  17.     WD90C30    1M         1024x768  1024x768   (D-step)
  18.     WD90C31    1M        1280x1024  1024x768   (1DW - accelerator) Hardware
  19.                                                Cursor, BitBLT.
  20.     WD90C33    2M                  1280x1024   Accelerator. as WD90c31, but
  21.                                                with 8-level instruction FIFO.
  22.                                                VESA local bus interface.
  23.     WD90C35              Next version?
  24.  
  25. Support chips:
  26.     WD90c55                                 Color LCD interface for WD90c20/22
  27.     WD90c56                                 Local Bus Interface for WD90c31
  28.  
  29.  
  30.  94h (W): Setup Register     (Micro Channel)
  31.  
  32. 102h (R/W): VGA Sleep Register    (setup mode only)
  33. bit    0  VGA enabled if set.
  34.      1-7  Reserved.
  35. Note: this register can only be accessed in setup mode.
  36.  
  37. 3B8h (W):  Hercules/MDA Mode Control Register
  38. bit    0  High Resolution (80x25) mode enabled if set
  39.        1  If set allows access to 3BFh, if clear disables access to 3BFh and
  40.           thus forces alpha mode.
  41.        3  If set video is active
  42.        5  If set blinking is enabled
  43.        7  (Hercules mode) If bit 1 is set and 3BFh bit 0 is set, this bit
  44.           selects the page to display. 0: B000h:0, 1: B800h:0
  45. Note: This register is only available in MDA/Hercules compatibility modes
  46.  
  47. 3BAh (R):  CRT Status Register MDA Operation
  48. bit    0  If set either blanking or border is active
  49.        3  If set B/W Video is enabled
  50.        7  If clear Vertical Retrace is active
  51.  
  52. 3BFh (W):  Hercules Mode Register
  53. bit    0  Set in graphics modes, clear in alpha modes
  54.        1  If set the upper 32K at B800h:0 is accessible
  55. Note: This register is only available in Hercules compatibility modes
  56.  
  57. 3C3h (W): Global Enable Register
  58. bit    0  VGA Motherboard Enable if set
  59. Note: this register is used for MicroChannel and motherboard systems, 46E8h
  60.       for all other systems.
  61.  
  62. 3C4h index  3  (R/W): Reconfigured Character Map Select
  63. bit  0-2  Offset of character map in plane 2/3 in 8k blocks
  64.      3-4  Character map select from plane:
  65.             0: plane 2
  66.             1: plane 2 if attr. bit 3 set, plane 3 else
  67.             2: plane 3 if attr. bit 3 set, plane 2 else
  68.             3: plane 3
  69.  
  70. 3C4h index  6  (R/W):  PR20 Unlock Paradise Extended Registers (WD90c10+ only)
  71. bit  0-7  Write 48h to this register to unlock the Paradise Extended Sequencer
  72.           Registers (3C4h index >7)
  73.  
  74. 3C4h index  7  (R/W):  PR21 Display Configuration Status       (WD90C10+ Only)
  75. bit    0  (R) Monitor type. TTL if set, Analog if clear. This is the same as
  76.               3CEh index 0Fh bit 7
  77.        1  (R) EGA emulation if set, VGA if clear. This is the same as 3CEh
  78.               index 0Eh bit 1.
  79.        2  (R) 6845 compatibility if set. This is the same as 3CEh index 0Ch
  80.               bit 6.
  81.        3  (R) Color mode if set, mono if clear. This is the same as 3CCh bit 0
  82.      4-7  Scratch Pad (Display Configuration)
  83.  
  84. 3C4h index 08h (R/W):  PR22 Scratch Pad Register               (WD90c10+ only)
  85. bit  0-7  Scratch Pad
  86.  
  87. 3C4h index 09h (R/W):  PR23 Scratch Pad Register               (WD90c10+ only)
  88. bit  0-7  Scratch Pad
  89.  
  90. 3C4h index 10h (R/W):  PR30A Write Buffer and FIFO Control     (WD90c11+ only)
  91. bit  0-1  (WD90c24,26,31+?) Display FIFO control. Determines when the FIFO
  92.             will request a memory cycle: 0: one level empty, 1: two, 2: three,
  93.              3. four
  94.      2-3  (WD90c24,26,31+?) FIFO depth. 0: 8 levels, 1: 4 levels,
  95.              2,3: 2 levels
  96.        4  If set disables 16bit unchained mode (for test only)
  97.        5  If set the Display Memory path is 16bit, if clear 32bit
  98.      6-7  (WD90c24,26,31+?) Write Buffer Control. 0: Write Buffer is one level
  99.             deep, 1: two, 2: three, 3: four
  100.  
  101. 3C4h index 11h (R/W):  PR31 System Control Interface           (WD90C1x+ Only)
  102. bit    0  16 bit access to CRTC, Graphics Controller and Sequencer Registers
  103.           if set
  104.        1  16 bit access to Attribute Registers if set and bit 0 set.
  105.           If so 3C0h is index and 3C1h is data port.
  106.        2  Enable Write buffer if set. Reduces number of wait states for writes
  107.           to display memory
  108.      3-4  Read Rdy Cntrl. Enhanced speed depending on host bus speed:
  109.            0:  RDY is inserted at the end of a CPU memory cycle. Used for
  110.                Local Bus. Power on default (WD90c24)
  111.            1:  RDY is inserted 1 MCLK cycle before the end of a CPU memory
  112.                cycle. Use for 10MHz or slower ISA systems
  113.            2:  RDY is inserted 2 MCLK cycles before the end of a CPU memory
  114.                cycle.
  115.            3:  RDY is inserted 1 MCLK cycle after the end of a CPU memory
  116.                cycle. Use for 12MHz ISA systems
  117.        5  Enhanced text mode operations if set
  118.        6  Enhanced operation on blank lines if set. Prevents screen refresh
  119.           memory cycles during Vertical Blanking
  120.        7  (WD90C1x,24+ Only) RW Offset. If set Bank reg PR0A is used for
  121.            read cycles and PR0B for write cycles, else PR0B is used for
  122.            A000h-A7FFh and PR0A for A800h-AFFFh.
  123.  
  124. 3C4h index 12h (R/W): PR32 Miscellaneous Control #4            (WD90C1x+ Only)
  125. bit    0  If set use special CPU mapping for 132column text modes ?
  126.        1  If set allows reading the registers that are write-only in
  127.           compatibility modes (EGA,CGA,MDA registers)
  128.        2  (WD90c1x,3x) Clock Select bit 3. Bit 2 is in 3CEh index 0Ch bit 1,
  129.             bits 0-1 are in 3C2h/3CCh bits 2-3.
  130.      2-3  (WD90c24) Controls the FPUSR0 output pin. 0: set low, 1: set high,
  131.             2,3: pin is controlled by 3C4h index 15h bits 0-2
  132.      4-5  Controls the FPUSR1 output pin. 0: set low, 1: set high, 2,3: pin is
  133.           controlled by 3C4h index 15h bits 3-5
  134.        6  Disable Cursor Blinking if set
  135.        7  (not WD90c24) Enable External Sync
  136.  
  137. 3C4h index 13h (R/W):  PR33A DRAM Timing and Zero Wait State Control
  138.                                                                (WD90c1x+ only)
  139. bit  0-1  Length of RAS precharge. 0: 2.5MCLK cycles +d, 1: 3MCLK, 2: 2MCLK,
  140.            3: 2.5MCLK
  141.        2  If set the CAS cycle starts 1.5 MCLK cycles after RAS low, if clear
  142.            2.5 MCLK cycles after RAS low
  143.      3-4  CAS timing.
  144.                CAS cycle width    CAS low      CAS high
  145.            0:   2 MCLK cycles    1MCLK +  d    1MCLK -  d
  146.            1:   2 MCLK cycles    1MCLK + 2d    1MCLK - 2d
  147.            2:   2 MCLK cycles    1.5 MCLK      0.5 MCLK
  148.      6-7  Zero Wait State Control. Controls the output on the ZWST pin
  149.            0:  Reserved, do NOT use
  150.            1:  Low if the internal write buffer is ready AND the memory
  151.                address is decoded.
  152.            2:  As 1, but also require that MWR is 0
  153.            3:  As 2, but also low if an I/O write to the VGA occurs.
  154. Note: the time d is 3-7ns for 5V operation, 5-10ns for 3.3V
  155.  
  156. 3C4h index 14h (R/W):  PR34A Display Memory Mapping Register   (WD90C1x+ only)
  157. bit  0-3  Bits 20-23 of the memory address where the 1MB video buffer is
  158.           located if using linear address buffer. For Local Bus versions also
  159.           see 2DF2h for the upper 8 address bits.
  160.      4-5  Set to enable Linear Frame buffer ???
  161.        6  (WD90c33) Bit 8 of PR0A. Bits 0-7 are in 3CEh index 9.
  162.  
  163. 3C4h index 15h (R/W):  PR35A FPUSR0,FPUSR1 Output Select       (WD90c1x+ only)
  164. bit  0-2  Controls the output on the FPUSR0 pin if 3C4h index 12h bit 3 is set
  165.            0:  High if an I/O address is decoded
  166.            1:  High if fetching character attribute from DRAM
  167.            2:  Low if the internal write buffer is not empty
  168.            3:  High if a CPU read cycle is occurring
  169.            4:  Low if a write buffer cycle is occurring
  170.      3-5  Controls the output on the FPUSR1 pin if 3C4h index 12h bit 5 is set
  171.            0:  High if fetching font from DRAM
  172.            1:  High if fetching graphics data from DRAM
  173.            2:  High if the internal write buffer is ready
  174.            3:  High if a CPU write cycle is occurring
  175.            4:  Low if a CPU write cycle is not caused by the write buffer
  176.  
  177. 3C4h index 16h (R/W):  PR45 Video Signature Analyser Control      (WD90c24,26)
  178. bit    0  Set to start generation of a signature for a frame. Must be reset
  179.           and then set again for the next signature.
  180.        1  Clearing this bit initialises the Signature Analyser by preloading
  181.           the value 0001h. Must be set before a signature can be generated.
  182.        2  If set an all-zero pattern is used as input to the Signature
  183.           Analyser rather than the output of the RAMDAC
  184.        3  Set to enable access to the Signature Analyser Data registers
  185.           (3C4h index 17h,18h)
  186.  
  187. 3C4h index 17h W(R/W):  PR45A,B Signature Analyser Data           (WD90c24,26)
  188. bit 0-15  Result from Signature Analyser
  189.  
  190. 3C4h index 19h (R/W):  PR57 Feature Register I                    (WD90c24,26)
  191. bit    0  Bank B Enable. If set memory accesses and refresh operations to bank
  192.           B display memory is enabled, if clear disabled.
  193.        1  Source for REFRESH timing. If set CKIN divided by 3C4h index 34h, if
  194.           clear the REFRESH input pin.
  195.        2  Panel Power Control. If 3d4h index 32h bit 4 is set this bit
  196.           controls the PNLOFF output. 0: PNLOFF high, 1: PNLOFF low
  197.      3-4  TFT Dithering Mode Select. Together with 3C4h index 29h bits 2,6 and
  198.            3C4h index 21h bit 4 this controls the dithering algorithm.
  199.           Index 21h  29h  19h
  200.           Bit    4   2 6  3-4
  201.                                  9bit TFT modes:
  202.                  0   0 0   0     2-Frame Dithering, 27K colors
  203.                  0   0 0   2     No Dithering, 512 colors
  204.                  0   0 0   3     Space Dithering, 27K colors
  205.                  0   1 0   0     2-Frame Dithering, 180K colors
  206.                  0   1 0   1     2 and 3 Frame Dithering, 256K colors
  207.                  0   1 0   2     No Dithering, 512 colors
  208.                                  12bit TFT modes:
  209.                  0   x 1   0     2-Frame Dithering, 226K colors
  210.                  0   x 1   1     2-Frame Dithering, 226K colors
  211.                  0   x 1   2     No Dithering, 4K colors
  212.                  0   x 1   3     Space Dithering, 226K colors
  213.                                  18bit TFT modes:
  214.                  1   x x   2     No Dithering, 256K colors
  215.           All other combinations are invalid
  216.        5  If set enables self-refresh when entering Powerdown mode
  217.        6  Refresh Clock (REFLCL) Input. Only used in Local Bus mode.
  218.           If clear the REFLCL pin provides the refresh clock source (typically
  219.           32KHz). This overrides bit 1.
  220.  
  221. 3C4h index 20h (R/W):  PR58 Feature Register II                   (WD90c24,26)
  222. bit    0  Scratch Pad
  223.  
  224. 3C4h index 21h (R/W):  PR59 Memory Arbitration Cycle Setup        (WD90c24,26)
  225. bit  0-2  Arbitration Cycle Select. Sets the length of the Arbitration Cycle
  226.           in units of 160ns (for 25MHz VCLK = 4 VCLK cycles).
  227.        3  If set enables Space Dithering in Mode 13h.
  228.        4  If set selects 18bit TFT, if clear 9 or 12bit TFT
  229.        5  If set the ENDATA output is low, if clear high
  230.  
  231. 3C4h index 24h (R/W):  PR62 FR Timing Register                    (WD90c24,26)
  232. bit  0-7  This value controls the period of the Frame Rate (FR) signal.
  233.           Program with 1/4th the number of lines in the FR period.
  234.  
  235. 3C4h index 25h (R/W):  PR63 Read/Write FIFO Control                  (WD90c24)
  236. bit    0  If set enables write operations to the Frame Buffer
  237.        1  If set enables read operations from the Frame Buffer
  238.      2-7  The time the Frame Buffer can be accessed in MCLKs ?
  239.  
  240. 3C4h index 26h (R/W):  PR58A Memory Map Register for BLT Access
  241.                              in PI/Local Bus                         (WD90c24)
  242. bit  0-1  Enables Memory Mapping to I/O ports.
  243.            0: No I/O Memory Mapping.
  244.            1: Map I/O ports 23C0h-23C5h. Writes to A0000h-AFFFFh are decoded
  245.                to one of the registers 23C0h-23C7h from the low 3 address bits
  246.            3: Map I/O port 23C4h only. Writes to A0000h-AFFFFh are decoded to
  247.               register 23C4h
  248.      2-3  Select True Color Mode. 0: Normal Palette, 1: 5-6-5 64K True color,
  249.            2: 6-5-5 64K True Color, 3: 5-5-5 32K True Color
  250.        4  If set data is shifted out of the video FIFO in 16bit chunks.
  251.  
  252. 3C4h index 27h (R/W):  PR64 CRT Lock Control II                      (WD90c24)
  253. bit  0-1  Vertical Expansion Selected (only in 400 line modes):
  254.             0,2: No enhanced expansion
  255.               1: 3 lines repeated below character
  256.               3: One line repeated above character and two lines repeated
  257.                  below the character
  258.        4  Clear to unlock the Horizontal Display End Register (3d4h index 1)
  259.        6  Clear to unlock the Vertical Display End Register (3d4h index 12h)
  260.           and Overflow Register (3d4h index 7) bits 1 and 6
  261.  
  262. 3C4h index 28h (R/W):  PR65 Reserved for future need                 (WD90c24)
  263. bit  0-7  Reserved
  264.  
  265. 3C4h index 29h (R/W):  PR66 Feature Register III                     (WD90c24)
  266. bit  0-1  Reserved, must be set to 0
  267.      2,6  TFT Dithering Mode Select. See 3C4h index 19h bits 3-4.
  268.        3  If set VSYNC and HSYNC are forced to in-active low.
  269.        4  If set PCLK is forced to inative low. In CRT-only mode BLANK and
  270.           VID[0-7] are also forced to inactive low
  271.        5  If set LP is the same as HSYNC and FP is the same as VSYNC
  272.        7  If set enables Auxiliary Video Extender (AVE) Mode where the
  273.           internal RAMDAC is driven from an external source
  274.  
  275. 3C4h index 31h (R/W):  PR68 Programmable Clock Selection Register    (WD90c24)
  276. bit  0-2  Display Memory Clock Select. In MHz:
  277.             0: 55.035    1: 33.111    2: 59.957    3: 37.585
  278.             4: 39.822    5: 44.297    6: 47.429    7: 49.219
  279.      3-4  Video Dot Clock Select bits 2-3. Bits 0-1 are in 3C2h/3CCh bits 2-3.
  280.           The value 2 selects programmed clock via index 32h. In MHz:
  281.             0: 29,979    1: 77,408    2: Prog      3: 80,092
  282.             4: 25,175    5: 28,322    6: 65,000    7: 36,000
  283.             8: 39,822    9: 50,114   10: 42,060   11: 44,297
  284.            12: 31,500   13: 35,501   14: 75,166   15: 50,114
  285.  
  286. 3C4h index 32h (R/W):  PR69 Programmable VCLK Frequency Register     (WD90c24)
  287. bit  0-7  If Video Dot Clock 2 is selected, the Video Dot Clock is calculated
  288.           as:  (This register) * 0.447443 MHz.  Min 25.017MHz, Max 85.014MHz
  289.  
  290. 3C4h index 33h (R/W):  PR70 Mixed Voltage Override Register          (WD90c24)
  291. bit    0  If set selects 3.3V for AVDD, if clear 5V
  292.        1  If set selects 3.3V for MVDD, if clear 5V
  293.        2  If set selects 3.3V for FPVDD, if clear 5V
  294.        3  If set selects 3.3V for BVDD, if clear 5V
  295.        4  If set selects 3.3V for PVDD, if clear 5V
  296.        5  If set bits 0-4 determines the Voltage used
  297.  
  298. 3C4h index 34h (R/W):  PR71 Programmable Refresh Timing Register     (WD90c24)
  299. bit  0-7  If 3C4h index 19h bit 1 is set the CKIN clock (typically 32kHz) is
  300.           divided by:  ((this register) +1 ) *8
  301.  
  302. 3C4h index 35h (R/W):  PR72 Programmable Clock                       (WD90c24)
  303. bit  4-6  Write 5 to unlock 3C4h index 31h, any other value locks it
  304.  
  305. 3C4h index 36h (R/W):  PR73 VGA Status Detect                        (WD90c24)
  306. bit    0  If set the Core Voltage is 3.3V, if clear 5V
  307.        4  If set the FPUSR0 signal is active low, if clear active high
  308.      5-6  I/O and Memory Detect. 1: I/O Detection, 2: Memory Detection,
  309.            3: I/O & Memory Detection
  310.        7  If set enables Status Detect
  311.  
  312. Note: The WD90c33 appears to use 3C4h index C0h-FFh
  313.  
  314. 3CEh index  9  (R/W):  PR0A Address Offset A
  315. bit  0-6  (<WD90c24) Added to bit 12-18 of video memory address if
  316.             Bank A selected. (Reads if 3C4h index 11h bit 7 set, A800h-AFFFh
  317.             if 3CEh index Bh bit set and 64k config B000h-BFFFh if 128k
  318.             config. A000h-AFFFh else).
  319.      0-7  (WD90C24,26,3x) same but bit 12-19 rather than 12-18.
  320.  
  321. 3CEh index 0Ah (R/W): PR0B Address Offset B
  322. bit  0-6  (<WD90c24) Added to bit 12-18 of video memory address if
  323.             Bank B selected. (Writes if 3C4h index 11h bit 7 set, A000h-A7FFh
  324.             if 3CEh index 0Bh bit 3 set and 64k config, A000h-AFFFh if 128k
  325.             config).
  326.      0-7  (WD90C24,26,3x) Same but bit 12-19 rather than 12-18.
  327.  
  328. 3CEh index 0Bh (R/W):  PR1 Memory Size
  329. bit    0  Enable on card ROM if set. Latched on Poweron
  330.        1  Select 16 bit ROM access if set. Latched on Poweron
  331.        2  Select 16 bit Memory access if set
  332.        3  PR0B enabled if set, else use PR0A for both banks
  333.      4-5  Memory Map.  0: A000h-BFFFh standard VGA,
  334.             1: 1st 256K of a 1MB area, 2: 1st 512K of a 1MB area, 3: 1MB area
  335.           For linear mapping 3C4h index 14h (and for Local Bus systems 2DF2h)
  336.           select the location of the 1MB buffer in system memory
  337.      6-7  Installed memory:
  338.             0  256k VGA standard
  339.             1  256k PVGA bank switching
  340.             2  512k PVGA bank switching
  341.             3    1M PVGA bank switching
  342.  
  343. 3CEh index 0Ch (R/W):  PR2 Video Configuration
  344. bit    0  Force VCLK (overrides SEQ1 bit 3).
  345.        1  Third Clock Select Line VCLK2
  346.           This bit appears to be inverted on the WD90c1x and WD90c2x, compared
  347.           to the WD90c00 and PVGA1
  348.      2,5  Character Map Select/Underline
  349.             0  Characters are taken from plane 2
  350.             1  do, but characters are underlined if bit 0 of the characters
  351.                attribute is set.
  352.             2  Characters are taken from plane 3.
  353.             3  If bit 3 of the characters attribute is set the character is
  354.                taken from plane 3, else from plane 2.
  355.      3,4  Character Clock Period Control
  356.             0  IBM VGA character Clock (8 or 9 dots wide).
  357.             1  7 dots (used for 132 character modes).
  358.             2  9 dots
  359.             3  10 dots
  360.           Selecting 10 dots/character modifies the horizontal PEL panning
  361.           register (3C0h index 13h).
  362.        6  6845 Compatibility Mode (6845 if set, EGA/VGA if clear).
  363.        7  AT&T/M24 Mode Enable, 400 line enable if set
  364.  
  365. 3CEh index 0Dh (R/W):  PR3 CRTC Control
  366. bit    0  Lock Vertical Timing (3d4h index 6,(7 bit 0,2,3,5,7),9 bit 5,
  367.             (3Dh bit 0,2,3),10h,11h bits 0-3,15h,16h) if set
  368.        1  Lock Prevention. Prevent locking through the Vertical Retrace
  369.           register (3d4h index 11h bit 7).
  370.        2  Multiply Cursor Start, Cursor Stop, Preset Row Scan and Maximum Scan
  371.           Line registers by 2
  372.      3-4  CRTC Display Start Address bits 16-17. Bits 0-15 are in 3d4h index
  373.           0Ch,0Dh. Also bits 16-17 of the Cursor Address (3d4h index 0Eh/0Fh).
  374.        5  Lock Horizontal Timing Registers (3d4h index 0-5,17h bit 2) if set
  375.        6  Lock HSYNC Polarity (3C2h/3CCh bit 7) if set
  376.        7  Lock VSYNC Polarity (3C2h/3CCh bit 6) if set
  377. Note: 3d4h index 0-7 are locked if either 3d4h index 11h bit 7 or bits 0 or 5
  378.       of this register is set.
  379.  
  380. 3CEh index 0Eh (R/W): PR4 Video Control
  381. bit    0  Extended 256 color Shift register Control. Configures the video
  382.           shift registers for extended 256 color mode if set
  383.        1  EGA compatibility. Disables reads of all registers that are
  384.           writeonly on the EGA, and of PR0-5 if set.
  385.        2  Lock internal Palette and Overscan registers if set
  386.        3  Override CGA Enable Video bit. Overrides the CGA "enable video"
  387.           bit 3 of 3D8h if set
  388.        4  Tri-state Memory Control Outputs if set
  389.        5  Tri-state Video (VID0-7) outputs. On the WD90c00 and later also
  390.           tri-states the HSYNC, VSYNC and BLNKN
  391.        6  (PVGA1A) Tristate HSYNC, VSYNC, BLNKN
  392.           (WD90c00 +) Select PCLK=VCLK if set, PCLK = 1/2 VCLK if clear
  393.        7  BLNK/Display Enable. If set the BLNKN output supplies PRE-Display
  394.           Enable (1 pixel) rather than the BLNKN signal
  395.  
  396. 3CEh index 0Fh (R/W): PR5 General Purpose Status and PR Register
  397. bit  0-2  Extended registers PR0-4 Unlocked if set to 5
  398.        3  (R) CNF bit 8. Set for TTL (EGA compatible) display, clear for
  399.            Analog (VGA compatible) display.
  400.        4  (W) Read protect PR0-4 if set
  401.           (R) CNF bit 4
  402.        5  (R) CNF bit 5
  403.        6  (R) CNF bit 6
  404.        7  (R) Multisync if set, fixed frequency else (CNF bit 7 = Switch 1).
  405.  
  406. 3d4h index 29h (R/W): PR10 Unlock PR11-17 Registers               (not PVGA1A)
  407. bit  0-2  Write of PR11-18 enabled if set to 5, disabled for all other values
  408.      3,7  Read of PR11-18 enabled if bit 3 clear and bit 7 set, any other
  409.           value causes reads of PR11-18 to return FFh
  410.  
  411. 3d4h index 2Ah (R/W): PR11 EGA Switches                           (not PVGA1A)
  412. bit    0  Lock 8/9 Dot Character Clock. Inhibits writes to 3C4h index 1 bit 0
  413.           if set.
  414.        1  Lock Graphics and Sequencer Screen Control if set
  415.           Inhibits write to 3CEh index 5 bit 5-6, 3C4h index 1 bit 2-5 and
  416.           3C4h index 3 bit 0-5.
  417.        2  Lock Clock Select
  418.        3  EGA Emulation on Analog Display
  419.      4-7  EGA Switch 1-4. Latched from MD12-15 on reset
  420.        4  (WD90c24) CNF17. Together with CNF2 determines bus type:
  421.      5-7  (WD90c24) Memory Mode. 4: 2 256Kx16, 5: 1 256Kx16
  422.  
  423. 3d4h index 2Bh (R/W): PR12 Scratch Pad Register                   (not PVGA1A)
  424. bit  0-7  Reserved
  425.  
  426. 3d4h index 2Ch (R/W): PR13 Interlace H/2 Start                    (not PVGA1A)
  427. bit  0-7  Interlace H/2 Start. Adjusts Horizontal Sync for interlace.
  428.           This register should be programmed with:
  429.             (3d4h index 4) - (3d4h index 0 +5)/2 + (3d4h index 5 bits 5-6)
  430.  
  431. 3d4h index 2Dh (R/W): PR14 Interlace H/2 End                      (not PVGA1A)
  432. bit  0-4  Interlace H/2 End. Adjusts horizontal Sync width. Should be
  433.           programmed with the low 5 bits of: (index 2Ch) + (?)
  434.        5  Interlace enable if set
  435.        6  Vertical Double Scan for EGA on PS/2 Display if set
  436.        7  Enable Vertical retrace interrupts if set
  437.  
  438. 3d4h index 2Eh (R/W): PR15 Miscellaneous Control #1               (not PVGA1A)
  439. bit    0  Disable borders if set
  440.        1  Select Display Enable Timing. If set BLNKN supplies Display Enable,
  441.           if clear BLNKN supplies Pre-Display Enable (one dot-clock prior to
  442.           active video). This bit is only active if 3CEh index 0Eh bit 7 is
  443.           set
  444.        2  Enables page mode addressing in alpha modes if set. Speeds up the
  445.           display (I.e. reduces the memory bandwidth used) by utilising the
  446.           Fast Page Mode found on all newer DRAM chips. This should be done
  447.           for 132 character text modes.
  448.        3  Interlace compatible with 8514/A timing if set (should only be set
  449.           in interlaced modes). Causes Vertical Sync to be generated from the
  450.           trailing edge of non-skewed Horizontal Sync, rather than the leading
  451.           edge. Also removes 2 VCLK delays from the default VGA video path.
  452.        4  VCLK=MCLK. If set MCLK is used for all video timings.
  453.        5  VCLK1,VLKC2 Latched Outputs. If set bits 2 & 3 of 3C2h/3CCh are
  454.           output on VCLK1,VCLK2
  455.        6  High VCLK. Set if VCLK is much faster than MCLK (more then 50%
  456.           faster). Should also be set in all 256color extended modes
  457.        7  Enable read of 46E8h if set
  458.  
  459. 3d4h index 2Fh (R/W): PR16 Miscellaneous Control #2               (not PVGA1A)
  460. bit    0  If set prevents writes of the DAC registers (3C6h-3C9h).
  461.        1  Standard VGA memory if set (Forces 256K configuration)
  462.        2  Enable Page Bit for Odd/Even.
  463.      3-4  Bit 16,17 of CRTC Address Counter Offset.
  464.      5-6  CRTC Address Counter Width
  465.            0= 256k, 1=128K, 2,3=64K
  466.        7  If set locks external 46E8h register
  467.  
  468. 3d4h index 30h (R/W): PR17 Miscellaneous Control #3               (not PVGA1A)
  469. bit    0  Maps out ROM at C600h-C67Fh if set
  470.        1  (not WD90C00) If set locks the Hercules Compatibility register
  471.            (3BFh)
  472.        2  (not WD90C00) Enables 64k ROM at C000h-CFFFh if set
  473.        3  (not WD90C00) Maps out ROM at C600h-C6FFh if set
  474.        4  (not WD90C00) If set PCLK = VCLK/2
  475.        5  (not WD90C00) If 3CEh index 0Ch bit 3-4 = 3, this bit selects 6 dot
  476.            font if clear, 10dot font if set
  477.  
  478. 3d4h index 31h-37h (R):                                         (WD90C11,24 +)
  479. Contains the text "WD90Cxx" (57h 44h 39h 30h 43h), where xx is model dependent
  480.            36h:  37h:  Text:        Chip:
  481.            31h   31h   'WD90C11'    WD90C11
  482.            32h   34h   'WD90C24'    WD90C24
  483.            32h   36h   'WD90C26'    WD90C26
  484.            33h   30h   'WD90C30'    WD90C30
  485.            33h   31h   'WD90C31'    WD90C31
  486.            33h   33h   'WD90C33'    WD90C33
  487. Note: for the WD90c24 (and probably the 26) these registers are only visible
  488.       when the Flat Panel extensions and Mapping Registers are disabled.
  489.       (Write 00h to 3d4h index 34h and 35h).
  490. Note: 3d4h index 38h-3Dh appears to hold other chip information like revision
  491.       level, however the format is not known yet.
  492. Note: These registers have apparently never been documented by Western Digital
  493.  
  494. 3d4h index 31h (R/W):  PR18 Flat Panel Status Register          (WD90c2x only)
  495. bit  0-1  LCD Panel Select. 0: Dual Panel LCD, 1: Plasma/EL, 3: Single Panel
  496.           LCD Display
  497.        2  (W) If set enables TFT Color Interface
  498.        4  Together with 3d4h index 3Eh bit 3 selects the Reverse Video mode
  499.           for Flat Panel output:
  500.              31h bit 4    3Eh bit 3    Effect:
  501.                  0            0        Normal text and graphics
  502.                  1            0        Reversed text and graphics
  503.                  1            1        Reversed text, normal graphics
  504.        5  If set selects 256K color palette STN dithering, if clear selects 4K
  505.           palette dithering
  506.        6  If set enables free running clock for EL, Plasma or TFT panel
  507.        7  If set an external RAMDAC is selected and the internal RAMDAC is
  508.           disabled, if clear the internal RAMDAC is used.
  509.  
  510. 3d4h index 32h (R/W):  PR19 Flat Panel Control 1                (WD90C2x Only)
  511. bit  0-1  Selects the number of VCLK cycles to delay Hsync.
  512.           If bit 7 clear:  0: 0, 1: 1, 2: 2, 3: 3
  513.           If bit 7   set:  0: 4, 1: 5, 2: 6, 3: 7
  514.        2  If set enables Auto-Centering and Vertical Expansion
  515.        3  If set Vertical Expansion is selected, if clear Auto-Centering
  516.        4  Set if LCD display enabled
  517.        5  Set if external display (CRT) enabled
  518.        6  Frame Pulse (FP) Timing Select. If set selects ON time during second
  519.           horizontal line, if clear during first horizontal line
  520.        7  Plasma Panel Interface. If set selects 8bits/2pixel interface, if
  521.           clear selects 4bits/pixel interface
  522.  
  523. 3d4h index 33h (R/W):  PR1A Flat Panel Control 2                (WD90c2x only)
  524. bit  0-1  Memory Refresh Cycles: 0,2: determined by CRT controller,
  525.             1: 1 cycle/line, 3: 2 cycles/line
  526.        2  If set Shading Method is Pulse Width Modulation, if clear Frame Rate
  527.           Modulation.
  528.        3  If set selects 4bit single LCD, if clear selects 8bit single LCD
  529.      4,7  Panel Resolution. 0: 640x480, 1: 1280x1024, 2. 1024x768, 3. 800x600
  530.      5-6  STN Panel Type. 0: Not a STN Panel, 1: 8bit STN, 3: 16bit STN
  531.  
  532. 3d4h index 34h (R/W):  PR1B Flat Panel Unlock Register          (WD90C2x Only)
  533. bit  0-2  Write 6 to unlock Shadow registers
  534.      5-7  Write 5 to unlock Flat Panel Registers (3d4h index 31h-33h,37h,3Bh,
  535.            3Ch,3Eh,3Fh)
  536. Note: Write A6h to unlock all WD90c2x extensions
  537.  
  538. 3d4h index 35h (R/W):  PR30 Mapping RAM Unlock                  (WD90c2x only)
  539. bit  0-7  Write 30h to unlock the Mapping RAM Registers (3d4h index 38h-3Ah).
  540.  
  541. 3d4h index 37h (R/W):  PR41 Vertical Expansion Initial Value    (WD90c2x only)
  542. bit  0-7  Selects the line to repeat at the top of the frame when Vertical
  543.           Expansion is selected.
  544.  
  545. 3d4h index 38h (R/W):  PR33 Mapping RAM Address Counter         (WD90c2x only)
  546. bit  0-7  The address in Mapping RAM that will be affected by the next access
  547.           to index 39h. Any read or write to index 39h will increment this
  548.           register.
  549. Note: Should only be access with 8bit I/O operations
  550.  
  551. 3d4h index 39h (R/W):  PR34 Mapping RAM Data Register           (WD90c2x only)
  552. bit  0-7  The byte in Mapping RAM addressed by index 38h can be accessed here
  553. Note: Should only be access with 8bit I/O operations
  554.  
  555. 3d4h index 3Ah (R/W):  PR35 Mapping RAM and Power-Down Control  (WD90c2x only)
  556. bit    1  If set enables the NTSC weighting equation: I=0.3R + 0.59G + 0.11B
  557.        3  If set bypasses the Mapping RAM, if clear uses Mapping RAM for gray
  558.           scale to gray shade mapping
  559.        5  If set disables the VGA controller
  560.        6  If set (and 3d4h index 3Fh bit 7 is set) enables internal clock
  561.           divided by 8
  562.        7  If set (and 3d4h index 3Fh bit 7 is set) enters System Power-down
  563.           mode - MCLK and VCLK are turned off
  564.  
  565. 3d4h index 3Bh (R/W):  PR36 Panel Height Select                 (WD90c2x only)
  566. bit  0-7  The number of lines (-1) in a single panel.
  567.  
  568. 3d4h index 3Ch (R/W):  PR37 Flat Panel Blinking Control         (WD90c2x only)
  569. bit  0-2  Cursor Blink Rate. 1: 8 frames on/8 off, 2: 16 on/16 off,
  570.             3: 32, 4: 64, 5: 128, 7: no cursor blinking
  571.      3-5  Character Blink Rate. 1: 8 frames on/8 off, 2: 16 on/16 off,
  572.             3: 32, 4: 64, 5: 128, 7: no cursor blinking
  573.        6  Shift Clock Polarity. If set data changes with falling edge of XSCLK
  574.           Data should be latched on rising edge. If clear data changes on the
  575.           rising edge of XSCLK and should be latched on the falling edge.
  576.        7  LCD Latch Pulse (LP) Signal Select. If clear LP is disabled during
  577.           Vertical Blanking, if set LP is free running.
  578.  
  579. 3d4h index 3Dh (R/W):  PR18A CRTC Vertical Timing Overflow         (WD90c30 +)
  580. bit    0  Vertical Total bit 10 (3d4h index 6)
  581.        1  Vertical Display Enable bit 10 (3d4h index 12h)
  582.        2  Start Vertical Retrace bit 10 (3d4h index 10h).
  583.        3  Start Vertical Blank bit 10 (3d4h index 15h).
  584.        4  Line Compare bit 10 (3d4h index 18h).
  585.  
  586. 3d4h index 3Eh (R/W):  PR39 Color LCD Control                   (WD90c2x only)
  587. bit    0  LP Polarity Select. If set LP has reverse polarity
  588.        1  FP Polarity Select. If set FP has reverse polarity
  589.        2  Enable CRT VSYNC and HSYNC if set, if clear the VSYNC and HSYNC
  590.           outputs are inactive high
  591.        3  Enable Reverse Video. See 3d4h index 31h bit 4
  592.        5  Set for Color Panels, clear for Mono Panels.
  593.        6  Color LCD Panel Border Select. 0: White, 1: Black
  594.        7  Enable LP Border Control. If set generates a special LP pulse to
  595.           latch border information
  596.  
  597. 3d4h index 3Eh (R/W):  PR18 CRT Vertical Timing                     (c33 only)
  598. bit    0  Some sort of Vertical timing ?
  599.        1  Moves the display up ~32 lines ?? if set. Guess: V Blanking End ?
  600.        2  Some sort of timing (looses sync if set)
  601.        5  Bit 8 of the Horizontal Total (3d4h index 0)
  602.        6  CRTC Display Start Address bit 18. Bits 0-15 are in 3d4h index
  603.           0Ch,0Dh and bits 16-17 are in 3CEh index 0Dh bits 3-4.
  604.        7  Set if 2MB video memory
  605.  
  606. 3d4h index 3Fh (R/W):  PR44 Power-Down and Memory Refresh
  607.                        Control Register                         (WD90c2x only)
  608. bit  0-6  Memory Refresh Period
  609.        7  Set to enable General Power-down
  610.  
  611. 3d4h index 3Fh (R/W):  PR19 Signature Analyser                    (c33 only ?)
  612.  
  613. 3D8h (W):  Color CGA Operation Register
  614. bit    0  If set selects 80x25 text mode, if clear 40x25 text mode
  615.        1  Set in graphics modes, clear in text modes.
  616.        3  Set in BW modes, clear in color modes
  617.        4  If set enables 640x200 BW mode
  618.        5  If set enables blinking
  619. Note: this register active in CGA emulation mode only
  620.  
  621. 3D9h (W):  CGA Color Select Register
  622. bit  0-3  Each bit controls the behavior of one color:
  623.            Bit 0 controls Blue, 1: Green, 2: Red, 3: Intensity
  624.           If set the bit has the following effect in each mode:
  625.             Alphanumeric mode:  Selects the color for the border
  626.             320x200 Graphics:   Selects the color for border and background
  627.             640x200 Graphics:   Selects the color for foreground
  628.        4  If set enables alternate color set in graphics mode
  629.        5  Selects 320x200 color set. 0: backgr, Green, Red, Brown
  630.             1: Backgr, Cyan, Magenta, White
  631. Note: this register active in CGA emulation mode only
  632.  
  633. 3DAh (R):  CRT Status Register CGA Operation
  634. bit    0  If set blanking or border is active
  635.        1  If set Light Pen Latch is set
  636.        2  If set Light Pen Switch is closed
  637.        3  If set Vertical Retrace is active
  638. Note: this register active in CGA emulation mode only
  639.  
  640. 3DEh (W):  AT&T/M24 Register
  641. bit    0  If set selects AT&T/M24 400 line mode, if clear selects 200 line
  642.        2  If set selects alternate font in plane 3, if clear standard font in
  643.           plane 2
  644.        3  If set 16KB Display page starts at BC00h:0, if clear at B800h:0
  645.        6  If set the underline attribute selects white underlined foreground,
  646.           if clear it selects blue foreground in color text modes
  647. Note: This register is only used in ATT mode (3CEh index 0Ch bit 7 set)
  648.  
  649. 23C0h W(R/W):                                                  (WD90c24+ only)
  650. bit  0-7  Selects the register bank at 23C2h.
  651.             0: System Control, 1: BitBLT, 2: Cursor, 3: (WD90c33) BitBLT 2
  652.     8-11  Register Index (for read operations)
  653.       12  If clear the index field is incremented for each read operation of
  654.           23C2h/3
  655.       13  (R) Invalid register block. Set if the currently selected register
  656.            block doesn't exist
  657. Note: The WD90c33 (and possibly the 26) has a different layout of these
  658.       registers than the WD90c24 and 31.
  659.  
  660. 23C2h W(R/W):                                                  (WD90c24+ only)
  661. bit 0-11  Data to write to the index selected by bits 12-15
  662.    12-15  Selects the index the write will go to
  663. Note: The index registers are marked as index a/b where a is the register bank
  664.       selected by 23C0h and b is the index from bit 12-15.
  665.  
  666. 23C2h index 0/0 W(R/W):  Interrupt Status Register             (WD90c24+ only)
  667. bit    0  Set if any interrupt is active
  668.        1  Set if Interrupt 1 is active (VGA)
  669.        2  Set if Interrupt 2 is active (BITBLT)
  670.      3-6  Set if the corresponding interrupt is active
  671.        7  Set if any of interrupts 7-10 are active
  672.        8  Set if interrupt 7 is active
  673.        9  Set if interrupt 8 is active
  674.       10  Set if interrupt 9 is active
  675.       11  Set if interrupt 10 is active
  676.  
  677. 23C2h index 1/0 W(W):  BITBLT Control                        (WD90c24,31 only)
  678. bit  0-1  BITBLT Source. 0: screen memory, 2: 32bit system I/O address
  679.      2-3  Source format. 0: color, 1: mono from color comparators,
  680.            2: fixed color (Fill), 3: mono from host
  681.      4-5  BitBlt Destination. 0: screen memory, 2: 32bit system I/O address
  682.        6  If set Blit source is linear, if clear rectangular
  683.        7  If set Blit destination is linear, if clear rectangular
  684.      8-9  BitBlt address mode. 0: planar, 1: packed or text mode
  685.       10  If set Blit is bottom->top, right->left,
  686.           if clear top->bottom, left->right.
  687.       11  Activation/status bit. Set this bit to start blit operation
  688.           The bit will be cleared when the operation is finished, and can be
  689.           read to check when the next operation can be started.
  690.  
  691. 23C2h index 1/0 W(W):  Drawing Engine Control 1                 (WD90c33 only)
  692. bit    0  Last Pixel Off. Last Pixel not drawn if set
  693.        1  Destination Select. If set destination is Host I/O or memory, if
  694.           clear it is screen memory.
  695.        2  Pattern Enable. Set if the source is an 8x8 pattern
  696.      3-4  Source Format. Defines the format of the source data:
  697.             0: Source is a Color bitmap
  698.             1: Monochrome from Color Comparators
  699.             2: Source is fixed color from the Foreground Color Register (index
  700.                 1/2 and 1/3)
  701.             3: Source is monochrome image from the host
  702.        5  Source Select. If set source data is from the Host I/O or memory, if
  703.           clear it is from the screen memory.
  704.        6  Major Row. If set delta Y is larger than delta X (linedraw).
  705.        7  Y Direction. If set the blit Y direction is negative (bottom-to-top)
  706.        8  X Direction. If set the blit X direction is negative (right-to-left)
  707.     9-11  Drawing Mode.  0: Nop, 1: BitBLT, 2: Linestrip, 3: Trapetzoid Fill
  708.             Strip, 4: Bresenham Linedraw
  709.  
  710. 23C2h index 1/1 W(W):  BITBLT Control                       (WD90c24,c31 only)
  711. bit    0  Destination transparency if set
  712.        1  Reserved, must be 0
  713.        2  If set matching pixels are opaque, transparent if clear.
  714.        3  Monochrome transparency if set
  715.      4-5  BitBLT Pattern Select. 0: no pattern, 1:source is an 8x8 pattern
  716.        6  Update destination registers on completion of blit if set
  717.        7  Quick start BitBLT when destination register (or source register if
  718.           bit 6 is set) is written if set
  719.        8  Y direction for line draw. 0: top -> bottom, 1: bottom -> top
  720.        9  X or Y Major for line draw. 0: X major, 1: Y major
  721.       10  Interrupt when blit completes if set
  722.       11  If set enables line drawing, if clear enables BitBLT operation
  723.  
  724. 23C2h index 1/1 W(W):  Drawing Engine Control 2                 (WD90c33 only)
  725. bit  0-2  Color Expansion Data Bits/Host Write. 2: 2bits/CPU write (16bpp),
  726.             3: 4bits/CPU write (8,16bpp)), 4: 8bits/CPU write (4,8,16bpp),
  727.             5: 8 or 16 bits/CPU write (4,8,16bpp)
  728.        3  Host BitBLT through Memory Port. 0: via I/O, 1: via Memory
  729.        6  Command Buffer Empty
  730.        7  Monochrome Transparency Source. 0: Off, 1: On
  731.        8  Destination Transparency Polarity. 0: Negative, 1: Positive
  732.        9  Destination Transparency Enabled if set
  733.    10-11  Pixel Depth.  0: 4bits per pixel, 1: 8bpp, 2: 16bpp
  734.  
  735. 23C2h index 1/2 W(R/W):  BITBLT Source Low
  736. bit 0-11  Lower 12 bits of the pixel source address
  737.           Addresses are in Dwords, 4 bytes for planar modes = 4 pixels, 1 byte
  738.           (x4 planes) for planar modes = 8 pixels.
  739.  
  740. 23C2h index 1/2 W(R/W):  BITBLT Source Low                  (WD90c24,c31 only)
  741. bit 0-11  Lower 12 bits of the pixel source address
  742.  
  743. 23C2h index 1/2 W(R/W):  X Source                               (WD90c33 only)
  744. bit 0-11  Starting X coordinate of the source area
  745.  
  746. 23C2h index 1/3 W(R/W):  BITBLT Source High                 (WD90c24,c31 only)
  747. bit  0-8  Upper 9 bits of the pixel source address
  748.  
  749. 23C2h index 1/3 W(R/W):  Y Source                               (WD90c33 only)
  750. bit 0-11  Starting Y coordinate of the source area
  751.  
  752. 23C2h index 1/4 W(R/W):  BITBLT Destination Low             (WD90c24,c31 only)
  753. bit 0-11  Lower 12 bits of the pixel destination address
  754.           Addresses are in Dwords, 4 bytes for planar modes, 1 byte (x4
  755.           planes) for planar modes.
  756.  
  757. 23C2h index 1/4 W(R/W):  X Destination                          (WD90c33 only)
  758. bit 0-11  Starting X coordinate of the destination area
  759.  
  760. 23C2h index 1/5 W(R/W):  BITBLT Destination High            (WD90c24,c31 only)
  761. bit  0-8  Upper 9 bits of the pixel destination address
  762.  
  763. 23C2h index 1/5 W(R/W):  Y Destination                          (WD90c33 only)
  764. bit 0-11  Starting X coordinate of the destination area
  765.  
  766. 23C2h index 1/6 W(R/W):  BITBLT Dimension X
  767. bit 0-11  Width of blit area in pixels for BitBLT operations. Length of line
  768.           (= max (deltaX, deltaY)) for line draw
  769.  
  770. 23C2h index 1/7 W(R/W):  BITBLT Dimension Y
  771. bit 0-11  Height of blit area in scanlines for BitBLT operations.
  772.  
  773. 23C2h index 1/8 W(R/W):  BITBLT Row Pitch                   (WD90c24,c31 only)
  774. bit 0-11  Scanline width at the destination in pixels. This must match with
  775.           the Dword system, so the 2 low bits are 0 in packed modes and the 3
  776.           low bits are 0 in planar modes.
  777.  
  778. 23C2h index 1/8 W(R/W):  Raster Op                              (WD90c33 only)
  779. bit 8-11  Raster Operation
  780.              0  ROP_Zero
  781.              1  ROP_And
  782.              2  ROP_SAnd
  783.              3  ROP_Src
  784.              4  ROP_NSad
  785.              5  ROP_Dst
  786.              6  ROP_Xor
  787.              7  ROP_Or
  788.              8  ROP_Nor
  789.              9  ROP_XNor
  790.             10  ROP_NDest
  791.             11  ROP_Sond
  792.             12  ROP_NSrc
  793.             13  ROP_NSod
  794.             14  ROP_NAnd
  795.             15  ROP_One
  796.  
  797. 23C2h index 1/9 W(W):  BITBLT Raster Op                     (WD90c24,c31 only)
  798. bit 8-11  Raster operation
  799.              0  ROP_Zero
  800.              1  ROP_And
  801.              2  ROP_SAnd
  802.              3  ROP_Src
  803.              4  ROP_NSad
  804.              5  ROP_Dst
  805.              6  ROP_Xor
  806.              7  ROP_Or
  807.              8  ROP_Nor
  808.              9  ROP_XNor
  809.             10  ROP_NDest
  810.             11  ROP_Sond
  811.             12  ROP_NSrc
  812.             13  ROP_NSod
  813.             14  ROP_NAnd
  814.             15  ROP_One
  815.  
  816. 23C2h index 1/9 W(R/W):  Left Clip                              (WD90c33 only)
  817. bit 0-11  Left edge of (smallest X coordinate) the clipping rectangle
  818.  
  819. 23C2h index 1/Ah W(R/W):  BLT Foreground Color              (WD90c24,c31 only)
  820. bit  0-7  BitBLT foreground Color
  821.  
  822. 23C2h index 1/Ah W(R/W):  Right Clip                            (WD90c33 only)
  823. bit 0-11  Left edge of (largest X coordinate) the clipping rectangle
  824.  
  825. 23C2h index 1/Bh W(R/W):  BLT Background Color              (WD90c24,c31 only)
  826. bit  0-7  BitBLT background color
  827.  
  828. 23C2h index 1/Bh W(R/W):  Top Clip                              (WD90c33 only)
  829. bit 0-11  Top edge of (smallest Y coordinate) the clipping rectangle
  830.  
  831. 23C2h index 1/Ch W(R/W):  BLT Transparency Color            (WD90c24,c31 only)
  832. bit  0-7  If Color Transparency is enabled (23C2h index 1/1 bit 0 is set) the
  833.           pixels in the destination area matching this value will not be
  834.           overwritten. 23C2h index 1/0Dh can cause some bits to be ignored in
  835.           the comparison
  836.  
  837. 23C2h index 1/Ch W(R/W):  Bottom Clip                           (WD90c33 only)
  838. bit 0-11  Bottom edge (largest Y coordinate) of the clipping rectangle
  839.  
  840. 23C2h index 1/Dh W(R/W):  BLT Transparency Mask             (WD90c24,c31 only)
  841. bit  0-7  BitBLT Transparency Mask. Each bit set causes the corresponding bit
  842.           of the pixel color to be ignored in the transparency comparison
  843.  
  844. 23C2h index 1/Eh W(W):  BLT Mask                            (WD90c24,c31 only)
  845. bit  0-7  Each bit set enables the corresponding plane (0-3) for planar modes,
  846.           or bit (0-7) for packed modes
  847.  
  848. 23C2h index 1/Fh (R/W):  Drawing Block Index                    (WD90c33 only)
  849. bit  0-7  Selects the register bank at 23C2h.
  850.             0: System Control, 1: BitBLT, 2: Cursor, 3: (WD90c33) BitBLT 2
  851.     8-11 Register Index (for read operations)
  852.  
  853. 23C2h index 2/0 W(W):  Cursor Control                    (WD90c24,26,31+ only)
  854. bit    4  (WD90c33) Enhanced Hardware Cursor (24bits per pixel).
  855.            If set doubles the cursor horizontally ?
  856.      5-7  Cursor Color Mode.
  857.             0: Straight monochrome (compatibility)
  858.             1: Two color cursor with inversion
  859.             2: Two color cursor with special inversion
  860.             3: Three color cursor
  861.        8  Cursor Plane Protection enabled if set. In planar modes
  862.     9-10  Cursor Pattern Type.
  863.             0: 2bits per pixel 32x32 cursor
  864.             1: 2bits per pixel 64x64 cursor
  865.       11  Set to enable hardware cursor
  866.  
  867. 23C2h index 2/1 W(W):  Cursor Pattern Address Low        (WD90c24,26,31+ only)
  868. bit 0-11  Lower 12 bits of the address of the Cursor Bitmap.
  869.           In 256 color modes this is in units of 4 bytes, in planar
  870.           modes in bytes. The Upper bits are in index 2.
  871.           The address is relative to the Display Start Address
  872. Note: The cursor map data is a 32x32 or 64x64 bitmap with 2 bits per pixel.
  873.       In packed modes (256c) the data is stored as 8bits of "A" data followed
  874.       by 8bits of "B" data, in planar modes Map 0 and 2 hold the "A" data and
  875.       Maps 1 & 3 the corresponding "B" data.
  876.       The effect on each pixel depends on the Cursor Color Mode selected by
  877.        23C2h index 2/0 bits 5-7:
  878.         A:  B:    Mode 0:        Mode 1:        Mode 2:        Mode 3:
  879.         0   0     All 0s       Secondary      Secondary      Secondary
  880.         0   1     All 1s        Primary        Primary        Primary
  881.         1   0   Transparent   Transparent    Transparent    Transparent
  882.         1   1    Inverted      Inverted        Special        Auxilary
  883.  
  884.       Primary     is the color in 23C2h index 2/3
  885.       Secondary   is the color in 23C2h index 2/4
  886.       Auxilary    is the color in 23C2h index 2/8
  887.       Special     is the screen data XNOR'ed with the Auxilary color
  888.       Inverted    is inverted screen data (XOR cursor)
  889.       Transparent is the screen data (Invisible cursor)
  890.  
  891. 23C2h index 2/2 W(W):  Cursor Pattern Address High       (WD90c24,26,31+ only)
  892. bit  0-7  Upper 8 bits of the address of the Cursor Bitmap in the display
  893.           memory in units of 4 bytes. The Lower bits are in index 1.
  894.  
  895. 23C2h index 2/3 W(R/W):  Cursor Primary Color               (WD90c24,31+ only)
  896. bit  0-7  The primary cursor color as an 8bit palette index
  897.  
  898. 23C2h index 2/4 W(R/W):  Cursor Secondary Color              (WD90c24,31 only)
  899. bit  0-7  The Secondary Color as an 8bit palette index
  900.  
  901. 23C2h index 2/4 W(R/W):  Cursor Primary Color mid. byte         (WD90c33 only)
  902. bit  0-7  The primary cursor color middle byte
  903.  
  904. 23C2h index 2/5 W(R/W):  Cursor Origin                       (WD90c24,31 only)
  905. bit  0-5  The X hotspot position within the cursor from the left
  906.     6-11  The Y hotspot position within the cursor from the top
  907.  
  908. 23C2h index 2/5 W(R/W):  Cursor Primary Color high byte         (WD90c33 only)
  909. bit  0-7  The primary cursor color high byte
  910.  
  911. 23C2h index 2/6 W(R/W):  Cursor X position                   (WD90c24,31 only)
  912. bit 0-10  The X position of the cursor hotspot in pixels from the left of the
  913.           display. In Hi/True color modes this is in bytes, not pixels
  914.  
  915. 23C2h index 2/6 W(R/W):  Cursor Secondary Color low byte        (WD90c33 only)
  916. bit  0-7  The secondary cursor color low byte
  917.  
  918. 23C2h index 2/7 W(R/W):  Cursor Y position                   (WD90c24,31 only)
  919. bit 0-10  The Y position of the cursor hotspot in scanlines from the top of
  920.           the display.
  921.  
  922. 23C2h index 2/7 W(R/W):  Cursor Secondary Color middle byte     (WD90c33 only)
  923. bit  0-7  The secondary cursor color middle byte
  924.  
  925. 23C2h index 2/8 W(R/W):  Cursor Auxiliary Color              (WD90c24,31 only)
  926. bit  0-7   The Auxilary cursor color as an 8bit palette index
  927.  
  928. 23C2h index 2/8 W(R/W):  Cursor Secondary Color high byte       (WD90c33 only)
  929. bit  0-7  The secondary cursor color high byte
  930.  
  931. 23C2h index 2/9 W(R/W):  Cursor Auxilliary Color low byte       (WD90c33 only)
  932. bit  0-7  The auxilliary cursor color low byte
  933.  
  934. 23C2h index 2/Ah W(R/W):  Cursor Auxilliary Color middle byte   (WD90c33 only)
  935. bit  0-7  The auxilliary cursor color middle byte
  936.  
  937. 23C2h index 2/Bh W(R/W):  Cursor Auxilliary Color high byte     (WD90c33 only)
  938. bit  0-7  The auxilliary cursor color high byte
  939.  
  940. 23C2h index 2/Ch W(R/W):  Cursor Hotspot                        (WD90c33 only)
  941. bit  0-5  The X hotspot position within the cursor from the left
  942.     6-11  The Y hotspot position within the cursor from the top
  943.  
  944. 23C2h index 2/Dh W(R/W):  Cursor X position                     (WD90c33 only)
  945. bit 0-11  The X position of the cursor in pixels from the left.
  946.           In Hi/Truecolor modes this is in units of 3 bytes ?huh?
  947.  
  948. 23C2h index 2/Eh W(R/W):  Cursor Y position                     (WD90c33 only)
  949. bit 0-11  The Y position of the cursor in scanlines from the top.
  950.  
  951. 23C2h index 2/Fh W(R/W):  Cursor Register Block/Index           (WD90c33 only)
  952. bit  0-7  Selects the register bank at 23C2h.
  953.             0: System Control, 1: BitBLT, 2: Cursor, 3: BitBLT 2
  954.     8-11 Register Index (for read operations)
  955.  
  956. 23C2h index 3/0 W(R/W):  Map Base                               (WD90c33 only)
  957. bit  0-?  Specifies (in units of 4KB) an offset from the start of display
  958.           memory that is added to all source and destination addresses.
  959.  
  960. 23C2h index 3/1 W(R/W):  Row Pitch                              (WD90c33 only)
  961. bit 0-11  Scanline width at the destination in pixels.
  962.  
  963. 23C2h index 3/2 W(R/W):  Foreground Color 0                     (WD90c33 only)
  964. bit  0-7  Low byte of the foreground color
  965.  
  966. 23C2h index 3/3 W(R/W):  Foreground Color 1                     (WD90c33 only)
  967. bit  0-7  High byte of the foreground color
  968.  
  969. 23C2h index 3/4 W(R/W):  Background Color 0                     (WD90c33 only)
  970. bit  0-7  Low byte of the background color
  971.  
  972. 23C2h index 3/5 W(R/W):  Background Color 1                     (WD90c33 only)
  973. bit  0-7  High byte of the background color
  974.  
  975. 23C2h index 3/6 W(R/W):  Transparency Color 0                   (WD90c33 only)
  976. bit  0-7  Low byte of the transparency color
  977.  
  978. 23C2h index 3/7 W(R/W):  Transparency Color 1                   (WD90c33 only)
  979. bit  0-7  High byte of the transparency color
  980.  
  981. 23C2h index 3/8 W(R/W):  Transparency Mask 0                    (WD90c33 only)
  982. bit  0-7  Low byte of the transparency mask
  983.  
  984. 23C2h index 3/9 W(R/W):  Transparency Mask 1                    (WD90c33 only)
  985. bit  0-7  High byte of the transparency mask
  986.  
  987. 23C2h index 3/Ah W(R/W):  Mask Byte Low                         (WD90c33 only)
  988. bit  0-7  Low byte of the mask. Each bit when set enables writes to that plane
  989.  
  990. 23C2h index 3/Bh W(R/W):  Mask Byte High                        (WD90c33 only)
  991. bit  0-7  High byte of the mask.
  992.  
  993. 23C2h index 3/Fh W(R/W):  Drawing Register Block/Index          (WD90c33 only)
  994. bit  0-7  Selects the register bank at 23C2h.
  995.             0: System Control, 1: BitBLT, 2: Cursor, 3: BitBLT 2
  996.     8-11 Register Index (for read operations)
  997.  
  998.  
  999. 23C4h W(R/W):  BitBLT I/O Port
  1000. bit 0-15  When the source or destination is set to "system I/O address" the
  1001.           data must be read or written through this register. The transfer
  1002.           should always be a multipla of 4 bytes
  1003.  
  1004. 23C8h W(R/W):  Bresenham Constant 1
  1005. bit 0-15  For Bresenham line drawing programmed with the constant:
  1006.            2* min(abs(Xend-Xstart),abs(Yend-Ystart))
  1007.  
  1008. 23CAh W(R/W):  Bresenham Constant 2
  1009. bit 0-15  For Bresenham line drawing programmed with the constant:
  1010.            2* (min(abs(Xend-Xstart),abs(Yend-Ystart))
  1011.                - max(abs(Xend-Xstart),abs(Yend-Ystart)))
  1012.  
  1013. 23CCh W(R/W):  Bresenham Error Term
  1014. bit 0-15  For Bresenham line drawing programmed with the constant:
  1015.            2*(min(abs(Xend-Xstart),abs(Yend-Ystart)))
  1016.                - max(abs(Xend-Xstart),abs(Yend-Ystart)) - d
  1017.           Where d is 0 if Xstart > Xend, -1 if not
  1018.  
  1019. 23CEh (R/W):  Command Buffer                                         (WD90c33)
  1020. bit 0-3  (R) Command Buffer Locations. Number of occupied elements in the 8
  1021.           element command queue. 0: 8 free, 1: 7 free  ... 8: No free slots
  1022.       5  Command Buffer Enabled if set. If disabled the Command Buffer
  1023.          Locations field follows the Drawing Engine Busy field.
  1024.       6  Command Buffer Overflow. Set if the buffer has overflowed since it
  1025.          was last enabled.
  1026.       7  Drawing Engine Busy if set.
  1027.       8  Drawing Engine not Busy Interrupt. Write 1 to arm the interrupt
  1028.       9  Drawing Engine not Busy Interrupt Status. Set if an interrupt is
  1029.          pending
  1030.      10  Vertical Retrace Interrupt.
  1031. Note: On the '33 this register is used to check if the engine is ready.
  1032.       Some applications check for bit 0-3 = 0 and some for bits 0-3,7 = 0.
  1033.  
  1034. 2DF0h (R/W):  Local Bus                     (WD90c24,26, 31 (via the '56), 33)
  1035. bit  0-1  Enable Dual Display. 0,1: Disable both, 2: Enable MDA - disable CGA,
  1036.            3: disable CGA - enable MDA
  1037.        2  Enable BOFF if clear, disable if set (should be set)
  1038.        3  VGA Data Path is 16bit if set
  1039.        4  If set the RAMDAC IOR/IOW cycle is 18 clocks long, if clear (the
  1040.           default) it is only 9 clocks long
  1041.        5  If set enables Local Bus Interface, if clear disables it
  1042.        6  If set use Local Bus RAMDAC, if clear use external RAMDAC
  1043.        7  If set use Local Bus BIOS, if clear use external BIOS
  1044.  
  1045. 2DF1h (R/W):                                (WD90c24,26, 31 (via the '56), 33)
  1046. bit  0-1  Memory Read/Write Low Duration.
  1047.             0: 2 clocks, 1: 3 clocks, 2: 4 clocks, 3: 5 clocks
  1048.      2-3  Memory Read/Write High Duration.
  1049.             0: 2 clocks, 1: 3 clocks, 2: 4 clocks, 3: 5 clocks
  1050.      4-5  IO Read/Write High/Low Duration
  1051.             0: 2 clocks, 1: 3 clocks, 2: 4 clocks, 3: 5 clocks
  1052.        6  Enable Wait State. 1 if set, none if clear
  1053.  
  1054. 2DF2h (R/W):  High Address                  (WD90c24,26, 31 (via the '56), 33)
  1055. bit  0-7  High Address A24-31 decode compare
  1056.  
  1057. 46E8h (R/W): Global Enable Register           (AT only)
  1058. bit 0-2  BIOS ROM page select (8 pages of 4K each).
  1059.       3  Adapter VGA enabled if set
  1060.       4  If set the VGA is in Setup mode, where 102h and 46E8h
  1061.          are the only ports responding.
  1062.          Wake Up port at 102h responds only if this bit set.
  1063. Note: This register is also addressed at 56E8h, 66E8h and 76E8h.
  1064.       Register only readable if 3d4h index 2Eh bit 7 set
  1065.       For MicroChannel and motherboard systems 3C3hj is used instead
  1066.  
  1067.  
  1068.  
  1069.   Bank Switching:
  1070.  
  1071.     Bank switching happens by adding the bank register to bit 12-19
  1072.     of the address, resulting in the window starting on a 4k boundary.
  1073.  
  1074.     Two different bank registers can be used either as Read/Write
  1075.     banks (WD90C1x) or as two different windows each 32k/64k big.
  1076.  
  1077.  
  1078.   Memory:
  1079.  
  1080.    $C000:$09  string   BIOS date
  1081.    $C000:$35  1 byte   BIOS version
  1082.    $C000:$7D  4 bytes  $3ED414756   ('VGA=')
  1083.  
  1084.  
  1085.   ID Paradise/WD Super VGA Chip set:
  1086.  
  1087.   old:=rdinx($3CE,$F);
  1088.   setinx($3CE,$F,$17);   {Lock registers}
  1089.   if not testinx2($3CE,9,$7F) then
  1090.   begin
  1091.     modinx($3CE,$F,$17,5);      {Unlock again}
  1092.     if testinx2($3CE,9,$7F) then
  1093.     begin
  1094.       old2:=rdinx(base,$29);
  1095.       modinx(base,$29,$8F,$85);  {Unlock WD90Cxx registers}
  1096.       if not testinx(base,$2B) then 'Paradise PVGA1A'
  1097.       else begin
  1098.         wrinx($3C4,6,$48);
  1099.         if not testinx2($3C4,7,$F0) then 'Western Digital WD90C00'
  1100.         else if not testinx($3C4,$10) then
  1101.         begin
  1102.           if testinx2(base,$31,$68) then 'Western Digital WD90C22'
  1103.           else if testinx2(base,$31,$90) then 'Western Digital WD90C20A'
  1104.           else 'Western Digital WD90C20';
  1105.           wrinx($3d4,$34,$A6);
  1106.           if (rdinx($3d4,$32) and $20)<>0 then wrinx($3d4,$34,0);
  1107.         end
  1108.         else if testinx2($3C4,$14,$F) then
  1109.         begin
  1110.           SubVers:=(rdinx(base,$36) shl 8)+rdinx(base,$37);
  1111.           case SubVers of
  1112.             $3234:'Western Digital WD90C24'
  1113.             $3236:'Western Digital WD90C26'
  1114.             $3330:'Western Digital WD90C30'
  1115.             $3331:'Western Digital WD90C31'
  1116.             $3333:'Western Digital WD90C33'
  1117.         else UNK(Paradise);'
  1118.         end
  1119.         else if not testinx2($3C4,$10,4) then 'Western Digital WD90C10'
  1120.                                          else 'Western Digital WD90C11';
  1121.     end;
  1122.     wrinx($3d4,$29,old2);
  1123.   end;
  1124.   wrinx($3CE,$F,old);
  1125.  
  1126.  
  1127.   Video Modes:
  1128.  
  1129.  
  1130.   14h  T   132   25  16            WD90c33
  1131.   21h  T   132   44  16            WD90c33
  1132.   41h  T    80   34  16
  1133.   47h  T   132   28  16
  1134.   54h  T   132   43  16  (7/8x9)
  1135.   55h  T   132   25  16  (7/8x16)
  1136.   56h  T   132   43   4  (7/8x9)
  1137.   57h  T   132   25   4  (7/8x16)
  1138.   58h  G   800  600  16  PL4
  1139.   59h  G   800  600   2  odd/even     **** See note    Not on newer boards?
  1140.   5Ah  G  1024  768   2  odd/even     **** See note    Not on newer boards?
  1141.   5Bh  G  1024  768   4  packed       **** See note    Not on newer boards?
  1142.   5Ch  G   800  600 256  P8        WD90C11/3x Only
  1143.   5Dh  G  1024  768  16  PL4
  1144.   5Eh  G   640  400 256  P8
  1145.   5Fh  G   640  480 256  P8
  1146.   60h  G  1024  768 256  P8        WD90c3x only
  1147.   61h  G   640  400 32k  P15       WD90c31+ only
  1148.   62h  G   640  480 32k  P15       WD90c3x only
  1149.   63h  G   800  600 32k  P15       WD90c3x only
  1150.   64h  G  1280 1024  16  PL4       WD90c31+ only
  1151.   66h  T    80   50  16  (8x8)
  1152.   67h  T    80   43  16  (8x8)
  1153.   68h  G   320  200 32k  P15       WD90c31 only
  1154.   69h  T   132   50  16  (8x8)
  1155.   6Ah  G   800  600  16  PL4
  1156.   6Ch  G  1280  960  16  PL4
  1157.   6Eh  G   640  480 16m  P24       WD90c33
  1158.   71h  G   640  400 64k  P16       WD90c33
  1159.   72h  G   640  480 16m  P24       WD90c31 only  (2048 bytes per line)
  1160.   72h  G   640  480 64k  P16       WD90c33
  1161.   73h  G   800  600 64k  P16       WD90c33
  1162.  
  1163.  
  1164.     Mode 5Bh  1024x768 4 color.
  1165.       2 bit per pixel packed mode.
  1166.       Pixels start in bit 6-7.
  1167.  
  1168.     Mode 59h   800x600 2 color and
  1169.     Mode 5Ah  1024x768 2 color.
  1170.       One bit per pixel odd/even mode
  1171.       Pixels 0-7 are in plane 0, 8-15 in plane 1.
  1172.  
  1173.  
  1174.  
  1175.   Bios extensions:
  1176.  
  1177.  
  1178. ----------10007E-----------------------------
  1179. INT 10 - VIDEO - Paradise VGA, AT&T VDC800 - Set Special Mode
  1180.         AX = 007Eh
  1181.         BX = horizontal dimension of the desired mode
  1182.         CX = vertical dimension of the desired mode
  1183.              Both BX,CX in dots for graph modes, chars for alpha modes
  1184.         DX = Number of colors desired (0000h for monochrome)
  1185. Return: BH = 7Eh if successful (Paradise VGA)
  1186.         AL = 7Eh if successful (AT&T VDC800)
  1187. ----------10007F-----------------------------
  1188. INT 10 - VIDEO - Paradise ....   Extended Mode Set
  1189.         AX = 007Fh
  1190.         BH = 00h   set VGA operation
  1191.         BH = 01h   set non-VGA operation
  1192.                    color modes (0,1,2,3,4,5,6) will set non-VGA CGA operation
  1193.                    monochrome mode 7 will set non-VGA MDA/Hercules operation
  1194.         BH = 02h   Query mode status
  1195.                    Return: BL = 00h if operating in VGA mode, 01h if non-VGA
  1196.                                 mode
  1197.                            CH = total video RAM size in 64k byte units
  1198.                            CL = video RAM used by the current mode
  1199.         BH = 03h   Lock current mode. Allows current mode (VGA or non-VGA) to
  1200.                    survive re-boot.
  1201.         BH = 04h   Set non-VGA MDA/Hercules Mode
  1202.         BH = 05h   Set non-VGA CGA Mode
  1203.         BH = 06h   Set VGA Mono Mode
  1204.         BH = 07h   Set VGA Color Mode
  1205.         BH = 09h..0Fh   Write Paradise Register
  1206.                         BL = New value of PR register
  1207.         BH = 19h..1Fh   Read Paradise Register
  1208.                         Return: BL = Value of register
  1209.                         BH: (Read) BH: (Write)   Register
  1210.                         19h        09h          PR0A     Port 3CEh index 09h
  1211.                         1Ah        0Ah          PR0B     Port 3CEh index 0Ah
  1212.                         1Bh        0Bh          PR1      Port 3CEh index 0Bh
  1213.                         1Ch        0Ch          PR2      Port 3CEh index 0Ch
  1214.                         1Dh        0Dh          PR3      Port 3CEh index 0Dh
  1215.                         1Eh        0Eh          PR4      Port 3CEh index 0Eh
  1216.                         1Fh        ---          PR5      Port 3CEh index 0Fh
  1217.         BH = 20h   Emulate EGA with Analog Monitor   (WD90Cxx Chips Only)
  1218.                    BL=EGA Switches in Bit 0-3
  1219.         BH = 29h..30h   Read Paradise Register       (WD90Cxx Chips Only)
  1220.                         Return: BL = Value of register
  1221.                         BH:    Register:
  1222.                         29h   PR10     Port 3d4h index 29h
  1223.                         2Ah   PR11     Port 3d4h index 2Ah
  1224.                         2Bh   PR12     Port 3d4h index 2Bh
  1225.                         2Ch   PR13     Port 3d4h index 2Ch
  1226.                         2Dh   PR14     Port 3d4h index 2Dh
  1227.                         2Eh   PR15     Port 3d4h index 2Eh
  1228.                         2Fh   PR16     Port 3d4h index 2Fh
  1229.                         30h   PR17     Port 3d4h index 30h
  1230.         BH = 60h
  1231.         BH = 61h
  1232.         BH = A5h
  1233.         BH = A6h
  1234.  
  1235. Note: The functions 60h, 61h, A5h and A6h are supported by the 5/14/93 ROM for
  1236.       the Dell 486D
  1237.  
  1238. Return: AL = 7Fh  If successful  (AT&T VDC600)
  1239.         BH = 7Fh  If valid call (Paradise/Western Digital)
  1240. ----------106E00-----------------------------
  1241. INT 10 - Paradise VGA internal - Get ???
  1242.         AX = 6E00h
  1243. Return: BX = 5744h ('WD') if supported
  1244.             DH:AH:AL = last three ASCII digits of ROM serial number
  1245.             CL = ???
  1246.             CH = ???
  1247. ----------106E04-----------------------------
  1248. INT 10 - Paradise VGA internal - Get Screen Size and ???
  1249.         AX = 6E04h
  1250. Return: BX = screen width (columns)
  1251.         CX = screen height (lines)
  1252.         AH = ??? (05h or FFh)
  1253.         AL = ??? (04h or video mode)
  1254. ----------106E05-----------------------------
  1255. INT 10 - Paradise VGA internal - Set Mode
  1256.         AX = 6E05h
  1257.         BL = mode
  1258. Note: like AH=00h, AL=BL.
  1259.  
  1260.  
  1261.  
  1262. DIP Switch/jumper settings:
  1263.  
  1264.   VGA Plus, VGA Plus 16, VGA Professional:
  1265.  
  1266.   Switch 1  Monitor Type. ON: Multi frequency, OFF: Standard VGA
  1267.          2  VGA Mode Switching Style. ON: PS/2 Style - All modes available on
  1268.             all monitors, OFF: PC/AT Style - color on color, mono on mono
  1269.          3  Not used - Set to OFF
  1270.          4  (Not VGA Plus) 8bit vs 16bit AutoSense. ON: Auto sense 8/16bit
  1271.             BIOS access, OFF: Force 8bit BIOS access